package learn;

import java.math.BigInteger;
import java.util.Scanner;

public class MutiEffectFigure
{
	static BigInteger twe = BigInteger.valueOf(2);
	
	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		Scanner scanner = new Scanner(System.in);
		
//		long a = scanner.nextLong();
//		long n = scanner.nextLong();
		
		BigInteger a = new BigInteger(scanner.next());
		BigInteger n = new BigInteger(scanner.next());
		
		long timeStart = System.currentTimeMillis();
		
		System.out.println(figure(a, n).toString());
		
		long timeEnd = System.currentTimeMillis();
		
		System.out.println(timeEnd - timeStart);
	}

	private static BigInteger figure(BigInteger a, BigInteger n)
	{
		if(n.compareTo(BigInteger.ONE) > 0)
		{
			if(n.mod(twe).equals(BigInteger.ZERO))
			{
				BigInteger t = figure(a, n.divide(twe));
				
				return t.multiply(t);
			}
			else
			{
				BigInteger t = figure(a, (n.subtract(BigInteger.ONE).divide(twe)));
				
				return t.multiply(t).multiply(a);
			}
		}
		
		return a;
	}

//	private static long figure(long a, long n)
//	{
//		if(n > 1)
//		{
//			if(n % 2 == 0)
//			{
//				long t = figure(a, n/2);
//				
//				return t * t;
//			}
//			else
//			{
//				long t = figure(a, (n-1)/2);
//				
//				return t * t * a;
//			}
//		}
//		
//		return a;
//	}

}
